﻿using System;

namespace Mss.Common.Interfaces
{
    public interface IView : IDisposable
    {
        #region Events

        /// <summary>
        /// Fires when trying to show View.
        /// </summary>
        event EventHandler Showing;

        /// <summary>
        /// Fires when trying to hide View.
        /// </summary>
        event EventHandler Hidding;

        /// <summary>
        /// Fires when trying to close View.
        /// </summary>
        event EventHandler Closing;

        #endregion

        #region Properties

        bool IsRegistered { get; set; }

        #endregion

        #region Methods

        /// <summary>
        /// Show View.
        /// </summary>
        void Show();

        /// <summary>
        /// Close View.
        /// </summary>
        void Close();

        /// <summary>
        /// Hide View.
        /// </summary>
        void Hide();

        #endregion
    }
}